package com.zking.ssm.sys.controller;

import com.zking.ssm.sys.model.User;
import com.zking.ssm.sys.service.IUserService;
import com.zking.ssm.util.JsonData;
import com.zking.ssm.util.MD5;
import com.zking.ssm.util.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


@RequestMapping("/user")
@Controller
public class UserController {

    @Autowired
    private IUserService userService;

    @ResponseBody
    @RequestMapping("/merge")
    public JsonData merge(User user) {
        JsonData jsonData = new JsonData();
        if(null == user.getUserId()) {
            int i = userService.insert(user);
            if(i > 0) {
                jsonData.setCode(0);
                jsonData.setMessage("增加成功");
            }else {
                jsonData.setCode(-1);
                jsonData.setMessage("增加失败");
            }
        }else {
            int i = userService.updateByPrimaryKeySelective(user);
            if(i > 0) {
                System.out.println(user);
                jsonData.setCode(0);
                jsonData.setMessage("修改成功");
            }else {
                jsonData.setCode(-1);
                jsonData.setMessage("修改失败");
            }
        }
        return jsonData;
    }

    @ResponseBody
    @RequestMapping("/del")
    public JsonData del(User user) {
        JsonData jsonData = new JsonData();

        int i = userService.deleteByPrimaryKey(user.getUserId());
        if(i > 0) {
            jsonData.setCode(0);
            jsonData.setMessage("删除成功");
        }else {
            jsonData.setCode(-1);
            jsonData.setMessage("删除失败");
        }
        return jsonData;
    }

    @ResponseBody
    @RequestMapping("/get")
    public JsonData get(User user) {
        JsonData jsonData = new JsonData();

        User u = userService.selectByPrimaryKey(user.getUserId());
        jsonData.setCode(0);
        jsonData.setMessage("查询成功");
        jsonData.setResult(u);

        return jsonData;
    }

    @ResponseBody
    @RequestMapping("/list")
    public JsonData list(User user, PageBean pageBean, HttpServletRequest request) {
        JsonData jsonData = new JsonData();
//        PageBean pageBean = new PageBean();

        pageBean.setRequest(request);
        pageBean.setPage(pageBean.getPage());
        pageBean.setRows(pageBean.getRows());
        pageBean.setTotal(pageBean.getTotal());

        List<User> userList = userService.list(user, pageBean);

        jsonData.setCode(0);
        jsonData.setMessage("查询成功");
        jsonData.setResult(userList);
        jsonData.setPage(pageBean.getPage());
        jsonData.setRows(pageBean.getRows());
        jsonData.setTotal(pageBean.getTotal());

        return jsonData;
    }

    @ResponseBody
    @RequestMapping("/login")
    public JsonData login(User user) {
        JsonData jsonData = new JsonData();
        MD5 md5 = new MD5();

        String newPwd = md5.getMD5ofStr(user.getPassword());
//        System.out.println(newPwd);

        User u = userService.Login(user);
        System.out.println(u.getPassword());
        if(null == u || !u.getPassword().equals(newPwd)) {
            jsonData.setCode(-1);
            jsonData.setMessage("账号或密码错误");
        }else {
            jsonData.setCode(0);
            jsonData.setMessage("登录成功");
            jsonData.setResult(u);
        }

        return jsonData;
    }

}
